package com.battle.service.service.in;

import nirvana.core.domains.vo.PageResult;
import com.battle.pojo.param.warCaseStudyDetails.*;
import com.battle.pojo.vo.warCaseStudyDetails.*;

import java.util.List;


/**
 * 【描 述】：战例研讨记录服务
 * 【环 境】：J2SE
 * 【详 细】：
 */
public interface WarCaseStudyDetailsService {

    /**
     * 创建战例研讨记录
     *
     * @param param
     */
    void createWarCaseStudyDetails(CreateWarCaseStudyDetailsParam param);

    /**
     * 修改战例研讨记录
     *
     * @param param
     */
    void editWarCaseStudyDetails(EditWarCaseStudyDetailsParam param);

    /**
     * 移除战例研讨记录
     *
     * @param id
     */
    void removeWarCaseStudyDetails(Long id);

    /**
     * 启动/禁用战例研讨记录
     *
     * @param id
     */
    void enabledWarCaseStudyDetails(Long id);

    /**
     * 点赞
     * @param id
     */
    void upvoteNumber(Long id);

    /**
     * 置顶|取消置顶
     * @param id
     */
    void topNumber(Long id);

    /**
     * 获取战例研讨记录详情
     *
     * @param id
     * @return
     */
    GetWarCaseStudyDetailsVo getWarCaseStudyDetails(Long id);

    /**
     * 获取战例研讨记录列表
     *
     * @param param
     * @return
     */
    PageResult<GetWarCaseStudyDetailsListVo> getWarCaseStudyDetailsList(GetWarCaseStudyDetailsListParam param);


    /**
     * 获取战例研讨记录下拉列表
     *
     * @param param
     * @return
     */
    List<GetWarCaseStudyDetailsDownListVo> getWarCaseStudyDetailsDownList(GetWarCaseStudyDetailsDownListParam param);


}